Communication proceeds as diagrammed below:
2.1 Connection Request/Connection Reply
Before the actual data transfer begins, a connection confirmation pulse is sent back and forth to confirm that the IR communication module is operating normally.
The receiving side receives the connection part of the signal. If it recognizes the connection pulse, it returns the same pulse back to the transmitting side. After that, the transmitting side determines whether the returned signal is a normal connection pulse. If the signal is not recognized to be a normal connection pulse, then communication will terminate.
2.2 Header
The header transmits the 1-halfword (16 bit) sum total of the data class (8bit) + data transfer size (8bit).
Communication will terminate if the data class is an unregistered illegal constant or if the data transfer size exceeds the permissible byte size of the receiving side.
2.3 Data
The amount of data specified by the 8bit "data transfer size" part of the header is transmitted consecutively. The amount of data that can be transmitted consecutively is 0 ~ 255 halfwords.
2.4 Checksum
This part transmits the checksum (1 halfword) calculated by the transmitting side.
2.5 Status
The receiving side returns its communication status (1 halfword).
Table of Communication Status Values
Status Value |
State |
Explanation |
IR_NORMAL |
Normal |
No error occurred |
IR_PULSE_ERR |
Pulse error |
An abnormal pulse was received |
IR_SUM_ERR |
Checksum error |
The checksum value sent by the transmitting side was not equal to the checksum value calculated by the receiving side. |
IR_BYTES_ERR |
Byte error |
The transfer request data byte size exceeded the byte size permitted by the receiving side. |
IR_CODE_ERR |
Code error |
The data class is an unregistered illegal constant. |